home *** CD-ROM | disk | FTP | other *** search
-
- /*
- *
- * GDS104 : ドットデ-タの読み込み
- *
- */
-
- #include <stdio.h>
- #include <dos.h>
- #include <math.h>
-
- unsigned char *GDS_get_block(signed int x1,signed int y1,signed int x2,signed int y2,unsigned char page) {
- union REGS inregs, outregs;
- struct SREGS segregs;
- static struct {
- unsigned int offset;
- unsigned int segment;
- unsigned char page;
- unsigned char dust;
- signed int x1;
- signed int y1;
- signed int x2;
- signed int y2;
- } work;
- unsigned int size;
- unsigned char *data;
-
- size=(((abs(x1-x2)+1)*(abs(y1-y2)+1)+7)/8)*4;
- if((data=(unsigned char *)malloc(size))==NULL)
- return NULL;
- work.offset=(unsigned int)data;
- work.segment=_DS;
- work.page=page;
- work.dust=0;
- work.x1=x1;
- work.y1=y1;
- work.x2=x2;
- work.y2=y2;
- segread(&segregs);
- segregs.ds=_DS;
- inregs.x.di=(unsigned int)&work;
- inregs.x.ax=0x8500;
- int86x(0x92,&inregs,&outregs,&segregs);
- return data;
- }